/**
*  \file cosdo_util.h
*
*  \brief    CanOpen SDO utility file.
*
*  \author   Michael Kunkelmann  <michael.kunkelmann@linde-mh.de>
*
*
*/

#ifndef COSDO_UTIL_H_INCLUDED
#define COSDO_UTIL_H_INCLUDED

/*================================================[ public includes  ]================================================*/
#include "../cfg/prj.h"

/*================================================[ public defines   ]================================================*/

/** Multiplexer index extraction macro. */
#define COSDO_EXTRACT_MUX_INDEX(arg)      ((U16)((arg) >> 8))


/** Multiplexer subindex extraction macro. */
#define COSDO_EXTRACT_MUX_SUBINDEX(arg)   ( (U8)(arg))


/** Multiplexor build macro.
*
*  \param index This argument specifies the object index [16 bit]
*  \param subindex This argument specifies the object subindex [8 bit]
*
*  \return SDO multiplexor identifier.
* */
#define COSDO_BUILD_MUX(index, subindex)  ((U32) (index & 0xFFFF) << 8 | (subindex & 0xFF))

/*================================================[ public datatypes ]================================================*/

/*================================================[ public variables ]================================================*/

/*================================================[ public functions ]================================================*/

/*====================================================================================================================*/


#endif

/***********************************************************************************************************************
*                             Copyright 2012, 2013 Linde Material Handling. All rights reserved.                       *
***********************************************************************************************************************/
